package dao;

import java.util.ArrayList;

import model.CityModel;
import model.CountryModel;

/**
 * Interface zu CityDAO
 * 
 * @author Katharina Matei
 * @version 1.0.0
 */
public interface CityDAOInterface {
	/**
	 * Liest alle Cities zu einer Country-ID aus der Datenbank
	 * 
	 * @param String countryID
	 * @return ArrayList<CityModel>
	 * @throws DBException
	 */
	public ArrayList<CityModel> getCities(String countryID) throws DBException;

	/**
	 * Fuegt einen City-Datensatz in die Datenbank ein
	 * 
	 * @param CityModel
	 * @throws DBException
	 */
	public void insert(CityModel city) throws DBException;

	/**
	 * Aendert die Namen der Cities, die der uebergebenen city_id entsprechen
	 * 
	 * @param CityModel
	 * @throws DBException
	 */
	public void update(CityModel city) throws DBException;

	/**
	 * Loeschen der Cities aus der Datenbank, die der uebergebenen city_id
	 * entsprechen
	 * 
	 * @param CityModel
	 * @throws DBException
	 */
	public void delete(CityModel city) throws DBException;

	/**
	 * Liest alle Cities aus der Datenbank
	 * 
	 * @return ArrayList<CityModel>
	 * @throws DBException
	 */
	public ArrayList<CityModel> getCityModelAll() throws DBException;

	/**
	 * Liest die Cities zu einem Country aus der Datenbank
	 * 
	 * @param CountryModel
	 * @return ArrayList<CityModel>
	 * @throws SQLException
	 */
	public ArrayList<CityModel> getCityByCountry(CountryModel country)
			throws DBException;

	/**
	 * Liest einen City-Datensatz zu einer City-ID aus der Datenbank
	 * 
	 * @param String cityID
	 * @return CityModel
	 * @throws DBException
	 */
	public CityModel readCity(String cityID) throws DBException;

}
